#include <stdio.h>
#include <unistd.h>
#include <pthread.h>

int tickets = 1000;
void* TicketGrabbing(void* arg)
{
	const char* name = (char*)arg;
	while (1)
	{
		if (tickets > 0)
		{
			usleep(10000);
			printf("[%s] get a ticket, left: %d\n", name, --tickets);
		}
		else
			break;
	}
	printf("%s quit!\n", name);
	pthread_exit((void*)0);
}
int main()
{
	// 线程创建
	pthread_t t1, t2, t3, t4, t5, t6;
	pthread_create(&t1, NULL, TicketGrabbing, "thread 1");
	pthread_create(&t2, NULL, TicketGrabbing, "thread 2");
	pthread_create(&t3, NULL, TicketGrabbing, "thread 3");
	pthread_create(&t4, NULL, TicketGrabbing, "thread 4");
	pthread_create(&t5, NULL, TicketGrabbing, "thread 5");
	pthread_create(&t6, NULL, TicketGrabbing, "thread 6");

	pthread_join(t1, NULL);
	pthread_join(t2, NULL);
	pthread_join(t3, NULL);
	pthread_join(t4, NULL);
	pthread_join(t5, NULL);
	pthread_join(t6, NULL);

	return 0;
}
